//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
#ifndef _Strings_h
#define	_Strings_h
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
  class String {
      
    private:

      char *string;

    public:
        
      String();
      String(const char*);
      String(const String*);
      String(String*);
      String(String&);
      
      ~String();

      void    In(const char*);
      void    In(char*);
      void    In(String*);
      void    In(String&);
      void    In(char, int);

      char*   Out(void);
      char    Out(int);

      void    Add(char);
      void    Add(const char*);
      void    Add(char*);
      void    Add(String*);
      void    Add(String&);

      void    Add(int);
      void    Add(long);
      void    Add(float);
      void    Add(double);

      void    Insert(char, int);
      void    Insert(char*, int);
      void    Insert(String*, int);
      void    Insert(String&, int);

      long    Length(void);
      
      bool    Contain(const char*);
      bool    Contain(String*);
      bool    Contain(String&);

      String* SubStr(int, int);

      int     Count(const char*);
      int     Count(String*);
      int     Count(String&);

      int     CountAlpha(void);
      
      void    Trim(void);
      void    RTrim(void);
      void    ITrim(void);

      void    ToUpper(void);
      void    ToLower(void);
      
      String* Cut(int, int);
      
      String operator= (const String&);
      String operator= (const char*);
      String operator= (char*);
      bool   operator< (String&);
      bool   operator< (const char*);
      bool   operator> (String&);
      bool   operator> (const char*);
      bool   operator! ();
      bool   operator==(String&);
      bool   operator==(const char*);
      bool   operator!=(String&);
      bool   operator!=(const char*);
      String operator+ (String&);
      char*  operator+ (const char*);
      char   operator[](int);

  };
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
#endif
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
